pcworld online logo

DOS PENCERES▌ KAPANSIN

WINDOWS 95 alt²nda bir DOS uygulamas² τal²■t²rd²≡²n²zda e≡er o programa ait bir PIF dosyas² ya da k²sayol yoksa, program penceresi τal²■t²r²ld²ktan sonra kapat²lmaz ve ekranda kal²r.
Bu durumu ÷nlemek iτin Windows'un bir API'sini kullanabilir, program sonland²ktan sonra DOS penceresini ortadan yok edebilirsiniz. Windows 95 ile birlikte gelen USER32.DLL ve KERNEL32.DLL adl² iki dosyay² kullanarak tan²mlad²≡²m²z ⁿτ fonksiyon sadece iki adet parametre ile i■i bitiriyor.

Declare Function FindWindow& Lib ' user32' Alias ' FindWindowA' _
(ByVal lpClassName As String, ByVal lpWindowName As String)
Declare Function SendMessage Lib ' user32' Alias ' SendMessageA' (ByVal hwnd As Long, _
ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Declare Sub Sleep Lib ' kernel32' (ByVal dwMilliseconds As Long)
Public Const WM_CLOSE = &H10
Private m_sEXEName As String
Private m_sDosCaption As String
Public Sub RunDosApp()
Dim vReturnValue As Variant
Dim lRet As Long
Dim i As Integer
vReturnValue = Shell(m_sEXEName, 1) ' Dosyay² τal²■t²r
AppActivate vReturnValue ' EXE penceresini aktif hale getir.
Do
Sleep (10000)
lRet = FindWindow(vbNullString, m_sDosCaption)
If (lRet <> 0) Then
vReturnValue = SendMessage(lRet, WM_CLOSE, &O0, &O0)
Exit Do
End If
Loop
End Sub